<?php $layout = 'admin';
$title = '系统日志 - MyCMS'; ?>

<!-- 日志类型选择 -->
<div class="card">
    <div class="card-header">
        <h2>日志类型</h2>
    </div>
    <div class="card-body">
        <div style="display: flex; gap: 1rem; align-items: center; flex-wrap: wrap;">
            <a href="/admin/logs?type=access&lines=<?= $lines ?>"
                class="btn <?= $logType === 'access' ? '' : 'btn-secondary' ?>"
                style="font-size: 0.9rem;">访问日志</a>
            <a href="/admin/logs?type=app&lines=<?= $lines ?>"
                class="btn <?= $logType === 'app' ? '' : 'btn-secondary' ?>"
                style="font-size: 0.9rem;">应用日志</a>
            <a href="/admin/logs?type=rate_limit&lines=<?= $lines ?>"
                class="btn <?= $logType === 'rate_limit' ? '' : 'btn-secondary' ?>"
                style="font-size: 0.9rem;">限速日志</a>

            <div style="margin-left: auto; display: flex; gap: 1rem; align-items: center;">
                <form method="get" style="display: flex; gap: 0.5rem; align-items: center;">
                    <input type="hidden" name="type" value="<?= htmlspecialchars($logType) ?>">
                    <label style="font-size: 0.9rem; color: #666;">显示行数：</label>
                    <select name="lines" onchange="this.form.submit()"
                        style="padding: 0.4rem; border: 1px solid #ddd; border-radius: 4px; font-size: 0.9rem;">
                        <option value="50" <?= $lines === 50 ? 'selected' : '' ?>>50</option>
                        <option value="100" <?= $lines === 100 ? 'selected' : '' ?>>100</option>
                        <option value="200" <?= $lines === 200 ? 'selected' : '' ?>>200</option>
                        <option value="500" <?= $lines === 500 ? 'selected' : '' ?>>500</option>
                    </select>
                </form>

                <?php if ($logType !== 'rate_limit'): ?>
                    <form method="post" action="/admin/logs/clear" style="display: inline;">
                        <?php echo App\Core\CSRF::field(); ?>
                        <input type="hidden" name="type" value="<?= htmlspecialchars($logType) ?>">
                        <button type="submit" class="btn btn-danger" style="font-size: 0.9rem;"
                            onclick="return confirm('确定要清空日志吗？此操作不可恢复！')">
                            清空日志
                        </button>
                    </form>
                <?php endif; ?>
            </div>
        </div>
    </div>
</div>

<!-- 日志内容 -->
<div class="card" style="margin-top: 1.5rem;">
    <div class="card-header">
        <h2>
            <?php
            $logTitles = [
                'access' => '访问日志',
                'app' => '应用日志',
                'rate_limit' => '限速日志'
            ];
            echo $logTitles[$logType] ?? '未知日志';
            ?>
        </h2>
        <button onclick="refreshLog()" class="btn btn-sm">刷新</button>
    </div>
    <div class="card-body">
        <?php if (empty($logContent)): ?>
            <div style="text-align: center; padding: 3rem; color: #666;">
                <p style="font-size: 1.1rem; margin-bottom: 1rem;">📝</p>
                <p>暂无日志内容</p>
            </div>
        <?php else: ?>
            <div style="background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 4px; padding: 1rem; overflow-x: auto;">
                <pre style="margin: 0; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 0.85rem; line-height: 1.4; white-space: pre-wrap; word-wrap: break-word;"><?= htmlspecialchars($logContent) ?></pre>
            </div>
        <?php endif; ?>

        <?php if ($logType === 'access'): ?>
            <div style="margin-top: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 4px;">
                <h4 style="margin: 0 0 0.5rem; color: #555;">日志格式说明</h4>
                <p style="margin: 0; font-size: 0.9rem; color: #666;">
                    [时间] IP地址 请求方法 请求路径 状态码 响应时间 "User-Agent"
                </p>
            </div>
        <?php elseif ($logType === 'app'): ?>
            <div style="margin-top: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 4px;">
                <h4 style="margin: 0 0 0.5rem; color: #555;">日志级别说明</h4>
                <p style="margin: 0; font-size: 0.9rem; color: #666;">
                    INFO: 一般信息 | WARNING: 警告信息 | ERROR: 错误信息 | DEBUG: 调试信息
                </p>
            </div>
        <?php elseif ($logType === 'rate_limit'): ?>
            <div style="margin-top: 1.5rem; padding: 1rem; background: #f8f9fa; border-radius: 4px;">
                <h4 style="margin: 0 0 0.5rem; color: #555;">限速数据说明</h4>
                <p style="margin: 0; font-size: 0.9rem; color: #666;">
                    记录各IP地址的登录失败次数和时间，用于防止暴力破解攻击
                </p>
            </div>
        <?php endif; ?>
    </div>
</div>

<script>
    function refreshLog() {
        window.location.reload();
    }

    // 自动滚动到底部（最新日志）
    document.addEventListener('DOMContentLoaded', function() {
        const logContainer = document.querySelector('pre');
        if (logContainer && logContainer.textContent.trim()) {
            logContainer.scrollTop = logContainer.scrollHeight;
        }
    });
</script>